
package com.plian.system.service.fr.indicatorsvalue;

import com.baomidou.mybatisplus.extension.service.IService;
import com.plian.system.entity.fr.indicators.GraphicOrgRelation;

import java.util.List;
import java.util.Map;

/**
 * 服务类
 *
 * @author jianglei
 * @since 2019-10-23
 */
public interface IGraphicOrgRelationService extends IService<GraphicOrgRelation> {

    /**
     * 根据父节点获取 需要减去的节点数据
     * @param parentId
     * @return
     */
    List<String> getSubtract(String parentId);

    /**
     * 根据父节点获取 需要增加的节点数据
     * @param parentId
     * @return
     */
    List<String> getAdd(String parentId);


    /**
     * 根据父节点获取 需要减去的节点数据
     * @param parentId
     * @return
     */
    List<String> getSubtract(String parentId, String reportTime);

    /**
     * 根据父节点获取 需要减去的节点数据
     * @param parentId
     * @return
     */
    List<String> getSubtract(String parentId, int year);

    /**
     * 根据父节点获取 需要增加的节点数据
     * @param parentId
     * @return
     */
    List<String> getAdd(String parentId, String reportTime);

    /**
     *
     * @param parentId
     * @param year
     * @return
     */
    List<String> getAdd(String parentId, int year);

    /**
     * 获取所有parentId 需要加减操作
     * @return
     */
    List<String> getAllParentId(String reportTime);


    /**
     * 获取需要合并数据
     * @return
     */
    Map<String, List<GraphicOrgRelation>> getMergeMap(String reportTime);

    /**
     * 获取需要合并数据
     * @return
     */
    Map<String, List<GraphicOrgRelation>> getMergeMap(int year);


    /**
     * 获取被合并子节点id 合计明细时用
     * @param parentId
     * @return
     */
    List<String> getMergeChildList(String parentId);

    /**
     * 获取所有需减去子节点id
     * @return
     */
    List<String> getSubtractChildList(String reportTime);

    /**
     * 获取所有需增加子节点id
     * @return
     */
    List<String> getAddChildList(String reportTime);

    /**
     * 获取所有需减去父节点id
     * @param reportTime yyyy-MM
     * @return
     */
    List<String> getSubtractParentList(String reportTime);

    /**
     * 获取所有需增加父节点id
     * @return
     */
    List<String> getAddParentList(String reportTime);

    /**
     * 根据父节点id获取 名称
     * @param parentId
     * @return
     */
    String getParentNameByParentId(String parentId);
}
